package com.chushouya.manager.service.api.impl;

import com.chushouya.manager.dao.entity.BannerEntity;
import com.chushouya.manager.dao.repository.BannerRepository;
import com.chushouya.manager.dto.admin.banner.BannerApiListDTO;
import com.chushouya.manager.dto.admin.banner.BannerQuery;
import com.chushouya.manager.service.api.BannerApiService;
import com.general.framework.core.lang.Beans;
import com.general.framework.core.lang.Dates;
import com.general.framework.core.lang.Validate;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.Date;
import java.util.List;

/**
 * Banner横幅广告展示接口服务实现类
 * 仅提供前端展示相关的查询功能
 * 
 * @author chushouya
 */
@Slf4j
@Service
public class BannerApiServiceImpl implements BannerApiService {

    @Resource
    private BannerRepository bannerRepository;

    @Override
    public List<BannerApiListDTO> selectList(Long positionId, String platform, Integer size) {
        Validate.isNull(positionId, "位置ID不能为空");
        // 使用 BannerQuery 进行查询，设置当前时间作为查询条件
        Date now = Dates.getTimeNow();
        BannerQuery query = new BannerQuery();
        query.setPage(1); // 设置页码为1
        query.setSize(size != null ? size : 10); // 设置默认查询数量为10
        query.setPositionId(positionId);
        query.setStatus(1); // 只查询启用状态的Banner
        query.setStartTime(now); // 设置开始时间，确保 Banner 已开始展示
        query.setEndTime(now);   // 设置结束时间，确保 Banner 尚未结束

        List<BannerEntity> bannerList = bannerRepository.selectList(query);
        return Beans.copyList(bannerList, BannerApiListDTO.class);
    }
}
